import tensorflow.compat.v1 as tf
import numpy as np

# 在Tensorflow 2.0 中，eager execution 是默认开启的。所以，需要先关闭eager execution
tf.compat.v1.disable_eager_execution()

# create data
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3

### create tensorflow structure start
# 模型入参
# random_uniform [1] 一维数据 -1.0 1.0 定义初始值范围
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))  # 参数变量
# 一维 初始值为0
biases = tf.Variable(tf.zeros([1]))
y = Weights * x_data + biases

# 参数的结果与实际结果的差值
loss = tf.reduce_mean(tf.square(y - y_data))
# 使用梯度下降的优化器进行差值优化
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

# 初始化参数
init = tf.initialize_all_variables()
### create tensorflow structure end

# 创建会话
sess = tf.Session()
sess.run(init)  # 会话初始化参数

for step in range(201):
    sess.run(train)
    #if step % 20 == 0:
        # 每20步打印一下 Weights 和 biases 的值
     #   print(step, sess.run(Weights), sess.run(biases))
    print(step, sess.run(Weights), sess.run(biases))














